home *** CD-ROM | disk | FTP | other *** search
- <!--NewPage-->
- <html>
- <head>
- <title>GUIWindow.java</title>
- </head>
- <body>
- <p>
- <hr size=4>
-
- <h2>
- GUIWindow.java
- </h2>
- <p>
- <blockquote>
-
- <pre>
-
- /*
- * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
- import java.awt.*;
-
- public class GUIWindow extends Frame {
- boolean inAnApplet = true;
- final String FILEDIALOGMENUITEM = "File dialog...";
-
- public GUIWindow() {
- Panel bottomPanel = new Panel();
- Panel centerPanel = new Panel();
-
- MenuBar mb = new MenuBar();
- Menu m = new Menu("Menu");
- m.add(new MenuItem("Menu item 1"));
- m.add(new CheckboxMenuItem("Menu item 2"));
- m.add(new MenuItem("Menu item 3"));
- m.add(new MenuItem("-"));
- m.add(new MenuItem(FILEDIALOGMENUITEM));
- mb.add(m);
- setMenuBar(mb);
-
- //Add small things at the bottom.
- bottomPanel.add(new TextField("TextField"));
- bottomPanel.add(new Button("Button"));
- bottomPanel.add(new Checkbox("Checkbox"));
- Choice c = new Choice();
- c.addItem("Choice Item 1");
- c.addItem("Choice Item 2");
- c.addItem("Choice Item 3");
- bottomPanel.add(c);
-
- //Add big things to the center area.
- centerPanel.setLayout(new GridLayout(1,2));
- //Put a canvas in the left column.
- centerPanel.add(new MyCanvas());
- //Put a label and a text area in the right column.
- Panel p = new Panel();
- p.setLayout(new BorderLayout());
- p.add("North", new Label("Label", Label.CENTER));
- p.add("Center", new TextArea("TextArea", 5, 20));
- centerPanel.add(p);
-
- setLayout(new BorderLayout());
- add("South", bottomPanel);
- add("Center", centerPanel);
-
- //Put a list in the window.
- List l = new List(3, false);
- l.addItem("List item 1");
- l.addItem("List item 2");
- l.addItem("List item 3");
- l.addItem("List item 4");
- l.addItem("List item 5");
- l.addItem("List item 6");
- l.addItem("List item 7");
- l.addItem("List item 8");
- l.addItem("List item 9");
- l.addItem("List item 10");
- add("East", l);
- }
-
- public boolean handleEvent(Event evt) {
- if ((evt.id == Event.ACTION_EVENT)
- && (evt.target instanceof MenuItem)) {
- String label = (String)evt.arg;
- if (label.equals(FILEDIALOGMENUITEM)) {
- FileDialog fd = new FileDialog(this, "FileDialog");
- fd.show();
- }
- return true;
- }
- if (evt.id == Event.WINDOW_ICONIFY) {//DOESN'T seem to be necessary
- hide();
- return true;
- }
- if (evt.id == Event.WINDOW_DESTROY) {
- if (inAnApplet) {
- dispose();
- return true;
- } else {
- System.exit(0);
- }
- }
- return super.handleEvent(evt);
- }
-
- public static void main(String args[]) {
- GUIWindow window = new GUIWindow();
- window.inAnApplet = false;
-
- //window.setTitle(window.getClass().getName() + " Application");
- window.setTitle("The AWT Components");
- window.pack();
- window.show();
- }
-
- }
-
- class MyCanvas extends Canvas {
-
- public void paint(Graphics g) {
- int w = size().width;
- int h = size().height;
- g.drawRect(0, 0, w - 1, h - 1);
- g.drawString("Canvas", (w - g.getFontMetrics().stringWidth("Canvas"))/2,
- 10);
-
- g.setFont(new Font("Helvetica", Font.PLAIN, 8));
- g.drawLine(10,10, 100,100);
- g.fillRect(9,9,3,3);
- g.drawString("(10,10)", 13, 10);
- g.fillRect(49,49,3,3);
- g.drawString("(50,50)", 53, 50);
- g.fillRect(99,99,3,3);
- g.drawString("(100,100)", 103, 100);
- }
-
- public Dimension minimumSize() {
- return new Dimension(150,130);
- }
-
- public Dimension preferredSize() {
- return minimumSize();
- }
- }
- </pre>
- </blockquote>
- <p>
- <hr size=4>
- <p>
- </body>
- </html>
-